cmake_minimum_required(VERSION 3.5.1)

project(template LANGUAGES C VERSION 0.0.1)

# 设置安装路径的前缀(默认为"/usr/local")
set(CMAKE_INSTALL_PREFIX "/usr")

# 设置执行 make install 时哪个目标应该被 install 到哪个位置
# install(TARGETS ${PROJECT_NAME} DESTINATION bin)   
# CMAKE_INSTALL_PREFIX + "bin" --> /usr/bin

# 复制目录 - 因有可执行文件需要单独定义 install 处理时的权限问题
# install(DIRECTORY package-deb-resource/opt
#     DESTINATION ../   # 此处表示 /usr (CMAKE_INSTALL_PREFIX) 的上级目录
# )


set(INSTALL_OPT_PREFIX  "../opt") 
# 此处表示 /usr (CMAKE_INSTALL_PREFIX) 的上级目录开始部分

# set(INSTALL_OPT_APPS_TESTAPP_PREFIX  "${INSTALL_OPT_PREFIX}/apps/testapp")
# 此处未使用，但表示可直接用变量进行指定，方便不需要拼接路径


# 复制一个文件到 /opt/apps/testapp 目录中
install(FILES
    package-deb-resource/opt/apps/testapp/info

    DESTINATION ${INSTALL_OPT_PREFIX}/apps/testapp/ # 此处表示目标目录为 /opt/apps/testapp
)

# 复制一些可执行文件到某些地方
install(FILES
    package-deb-resource/opt/apps/testapp/files/bin/cmd.sh
    package-deb-resource/opt/apps/testapp/files/bin/helloworld.sh

    DESTINATION ${INSTALL_OPT_PREFIX}/apps/testapp/files/bin
    # 权限操作 rwxr-xr-x
    PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE # rwx
                GROUP_READ             GROUP_EXECUTE # r-x
                WORLD_READ             WORLD_EXECUTE # r-x

)

# 复制一个目录到 某些地方
install(DIRECTORY
    package-deb-resource/opt/apps/testapp/entries

    DESTINATION ${INSTALL_OPT_PREFIX}/apps/testapp
)

# 复制两个目录到 /usr/share 中
install(DIRECTORY 
    package-deb-resource/usr/share/applications
    package-deb-resource/usr/share/icons

    DESTINATION share/   # 此处表示 /usr + share/ 的目录路径
)

# 以上用于准备打包操作，请不要执行 make install
# package-deb-resource 为克隆示例


# 注释行(使用方式)
find_package(DebPackage PATHS ${CMAKE_SOURCE_DIR})
add_package_descript(cmake/package-deb.descript)
# 此外为添加打包操作
# 如果在 build 目录中 执行 make package 执行成功后，将在 build 下生成一个deb
# 在 build/_CPack_Packages/Linux/DEB 目录下将会有用于打包的软件包的目录结构

# 对比可见 2022-02-09-17-43-20.png
